package com.solairen.myapplication.utils;

import java.math.BigInteger;
import java.security.MessageDigest;

public class MD5 {

    // 抄了一段加密算法，姑且算保证了安全性吧（
    public static String encrypt(String input) {
        try {
            // 创建 MessageDigest 对象，并指定使用 MD5 加密算法
            MessageDigest md = MessageDigest.getInstance("MD5");

            // 将字符串转换为字节数组，并进行加密
            byte[] messageDigest = md.digest(input.getBytes());

            // 将加密后的字节数组转换为大整数
            BigInteger no = new BigInteger(1, messageDigest);

            // 将大整数转换为16进制字符串
            String hashText = no.toString(16);

            // 补充前导0，直到字符串的长度为32
            while (hashText.length() < 32) {
                hashText = "0" + hashText;
            }
            // 长度限制hhhh
            hashText = hashText.substring(8, 24);

            return hashText;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}
